/*!
    \copyright  Copyright (c) 2005 - 2025 Qualcomm Technologies International, Ltd.
                All Rights Reserved.
                Qualcomm Technologies International, Ltd. Confidential and Proprietary.
    \version    
    \file
    \addtogroup key_sync
    @{
    \brief      Key Sync component private header.
*/

#ifndef KEY_SYNC_PRIVATE_H
#define KEY_SYNC_PRIVATE_H

#include <message.h>
#include <task_list.h>

/*! \brief Key sync task data. */
typedef struct
{
    /*! Task to use during key sync operation */
    TaskData task;

#ifdef INCLUDE_ACCESSORY_DEVICE_SERVICE

    /*! Task used specifically for accessory device key sync operations. */
    TaskData accessory_device_task;

#endif /* INCLUDE_ACCESSORY_DEVICE_SERVICE */

    /*! List of listeners for key sync events */
    task_list_t *listeners;
} key_sync_task_data_t;

/*! \brief Component level visibility of the key sync task data. */
extern key_sync_task_data_t key_sync;

/*! \brief Get pointer to key sync task data. */
#define keySync_GetTaskData()   (&key_sync)

/*! \brief Get pointer to key sync task. */
#define keySync_GetTask()       (&key_sync.task)

#ifdef INCLUDE_ACCESSORY_DEVICE_SERVICE

/*! \brief Get pointer to accessory key sync task (to be used only for accessory devices key sync operation) */
#define keySync_GetAccessoryDeviceTask()    (&key_sync.accessory_device_task)

#endif /* INCLUDE_ACCESSORY_DEVICE_SERVICE */

#endif /* KEY_SYNC_PRIVATE_H */

/*! @} */